package database;

import java.util.List;
import java.util.Set;

public interface IProductsDAO
{
    public Product AddProduct(String productName, String productUnit, Double productQuantityUnit, String productImage);
    
    public Product AddProduct(Product product);
    
    public Supermarket AddSupermarket(String supermarketName, String supermarketBranch, Double supermarketLocationLatitude, Double supermarketLocationLongitude);
    
    public Supermarket AddSupermarket(Supermarket supermarket);
    
    public ProductSupermarket AddProductToSupermarket(Supermarket supermarket, Product product, Double price);
    
    public Product FindProductById(Integer productId);
    
    public Product FindProduct(String productName, String productUnit, Double productQuantityPerUnit);
    
    public List<Product> FindProductsByName(String productName);
    
    public Supermarket FindSupermarketById(Integer supermarketId);
    
    public Supermarket FindSupermarket(String supermarketName, String supermarketBranch, Double supermarketLocationLatitude, Double supermarketLocationLongitude);
    
    public ProductSupermarket FindProductSupermarket(Product product, Supermarket supermarket);
    
    public List<Supermarket> FindSupermarketsByName(String supermarketName);
    
    public List<Product> FindAllProducts();
    
    public List<Supermarket> FindAllSupermarkets();
    
    public Set<ProductSupermarket> FindAllProductSupermarkets(Product product);
    
    public Set<ProductSupermarket> FindAllProductSupermarkets(Supermarket supermarket);
    
    public boolean DeleteProduct(Product product);
    
    public boolean DeleteSupermarket(Supermarket supermarket);
    
    public boolean DeleteProductFromSupermarket(ProductSupermarket productSupermarket);
}